home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1999 Spring / macformat-077.iso / Shareware Plus / Development / Akua Sweets 131 / Akua Sweets Examples / System / Daylight Savings Time < prev    next >
Encoding:
Text File  |  1999-03-04  |  2.1 KB  |  70 lines  |  [TEXT/ToyS]

  1. property kdtYearLong : 1 -- 1904-2020
  2.  
  3. property kasTimeToSwitchOn : "0300" -- The time to switch on in 24 hour time
  4. property kasTimeToSwitchOff : "0200" -- The time to switch off in 24 hour time
  5.  
  6. property kasDaylightOnEur : {-1, 1, 3, 0} -- Last Sunday in March (Europe)
  7. property kasDaylightOnUSA : {1, 1, 4, 0} -- First Sunday in April (USA)
  8. property kasDaylightOff : {-1, 1, 10, 0} -- Last Sunday in October (USA, Europe?)
  9.  
  10.  
  11. on run
  12.     CheckDayLight()
  13. end run
  14.  
  15.  
  16. on idle
  17.     CheckDayLight()
  18.     return 60 -- Check every minute?
  19. end idle
  20.  
  21.  
  22. on CheckDayLight()
  23.     -- Get current year
  24.     set thisYear to (the clock using format kdtYearLong) as number
  25.     
  26.     -- Set year in our nth records (are we in Europe?)
  27.     set greenwich to (time to GMT)
  28.     
  29.     -- Someone reported that this osax returned hours?!? Mine rerturns seconds
  30.     if (greenwich < -24) or (greenwich > 24) then ¬
  31.         set greenwich to greenwich / 3600 -- In hours
  32.     
  33.     -- Are we outside the USA?
  34.     if (greenwich < -10) or (greenwich > -5) then
  35.         set dstOn to kasDaylightOnEur
  36.     else
  37.         set dstOn to kasDaylighOnUSA
  38.     end if
  39.     
  40.     -- I'm not sure of Europe's off time    
  41.     set dstOff to kasDaylightOff
  42.     
  43.     -- Insert current year
  44.     set item 4 of dstOn to thisYear
  45.     set item 4 of dstOff to thisYear
  46.     
  47.     -- Get dates for this year
  48.     set thisYearOn to (the clock in sortable form using nth dstOn)
  49.     set thisYearOff to (the clock in sortable form using nth dstOff)
  50.     set thisYearNow to (the clock in extended sortable form)
  51.     
  52.     -- Add our setting hour to the On/Off dates
  53.     set thisYearOn to thisYearOn & "." & kasTimeToSwitchOn
  54.     set thisYearOff to thisYearOff & "." & kasTimeToSwitchOff
  55.     
  56.     -- Get current DST setting
  57.     set ourLoc to (adjust the clock)
  58.     set isOn to (daylight savings of ourLoc)
  59.     set shouldBeOn to (thisYearNow ≥ thisYearOn) and (thisYearNow < thisYearOff)
  60.     
  61.     -- Need to switch?
  62.     if (shouldBeOn is not isOn) then
  63.         set daylight savings of ourLoc to shouldBeOn
  64.         adjust the clock at geoposition ourLoc
  65.         display dialog ("Daylight savings time adjustment has been performed for you.") ¬
  66.             with icon note buttons {"Thank you, Akua!"} default button 1 ¬
  67.             giving up after 300 -- Only MacOS 8.51 or later
  68.     end if
  69. end CheckDayLight
  70.